package com.example.module.user.service;


import com.example.module.user.vo.GetUserByPhoneVO;
import com.example.module.user.DO.UserLoginDO;
import com.example.module.user.vo.UserLoginVO;
import com.example.module.user.DO.UserRegisterDO;
import com.example.module.user.form.*;
import com.example.module.user.vo.GetUserVO;

/**
 * @author ghy
 * @date 2025/07/31
 * @description 用户服务
 */
public interface UserService {

    /*
     * 用户注册
     *
     * @param userRegisterForm
     * @return void
     * */
    void userRegister(UserRegisterForm userRegisterForm);

    /*
     * 更新用户（根据用户Id查询）
     *
     * @param userUpdateForm
     * @return void
     * */
    void userUpdate(UserUpdateForm userUpdateForm);

    /*
     * 删除用户
     *
     * @param userDeleteForm
     * @return void
     * */
    void deleteUser(UserDeleteForm userDeleteForm);

    /*
     * 用户登录
     *
     * @param userLoginForm
     * @return UserLoginDO
     * */
    UserLoginVO userLogin(UserLoginForm userLoginForm);

    /*
     * 当前用户查询
     *
     * @return GetUserVO
     * */
    GetUserVO getCurrentUser();

    /*
     * 用户查询（根据手机号）
     * 用于登录检验是否存在该账号、
     *
     * @param getUserByPhoneForm
     * @return GetUserByPhoneVO
     * */
    GetUserByPhoneVO getUserByPhone(GetUserByPhoneForm getUserByPhoneForm);

    /*
     * 用户注销
     *
     * @return void
     * */
    void logout();
}
